package net.ojbk.study.curriculumDesign.service.cilentservicer;

import net.ojbk.study.curriculumDesign.beans.cilentservicer.Chat;
import net.ojbk.study.curriculumDesign.beans.cilentservicer.ChatMessage;
import net.ojbk.study.curriculumDesign.beans.cilentservicer.Servicer;
import net.ojbk.study.curriculumDesign.beans.usermanage.User;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: twobox
 * Date: 2019/1/6
 * Time: 19:25
 * Description: 客服通讯模块，负责客服的通讯相关业务
 */
public interface IServicerCommService {

    /**
     * 一个客服接入一个通讯
     * @param servicer
     * @param chat
     */
    public void joinChat(Servicer servicer, Chat chat);

//    /** v1.0
//     * 获取客服的 所有新消息
//     * Service有一个ChatList，每个Chat里面有一个suserNewMsgList。故List List
//     * @param servicer 该客服
//     * @return 新消息
//     */
//    public List<List<ChatMessage>> getNewMsgList(Servicer servicer);

//    /** v2.0
//     * 获取该会话的，客服新消息
//     * @param chat
//     * @return
//     */

    /**
     * 返回客服，此会话的一条新消息
     * @param chat
     * @return 弹出队首消息
     */
    public ChatMessage getNewMsg(Chat chat) throws Exception;

    /**
     * 需求：一个客服，给一个用户的会话（其实前期设计的时候应该给User也包装下），发送一条消息
     * @param servicer 客服
     * @param chat 用户的会话
     * @param chatMessage 消息
     */
    public void sendMsg(Servicer servicer, Chat chat, ChatMessage chatMessage) throws Exception;

    /**
     * 需求：一个客服，断开 一个用户，的会话
     * @param servicer
     * @param chat 用户的对话（理应是一个上层抽象的会话对象）
     */
    public void catChat(Servicer servicer, Chat chat) throws Exception;
}
